entrega = {
	bindEvents: function(){
		$(document).on("blur","#inputNroPedido",function(){
			var id = $(this).val().trim();
			var formData = { "id":id };
			if(id != ""){
				request = $.ajax({
		    	    url : "ObtenerPedido",
		    	    type: "POST",
		    	    data : formData,
		    	});
				request.done(function (response, textStatus, jqXHR){
					if(response.error && response.error == "id inexistente"){
						entrega.mostrarNotificacion("Numero de pedido inexistente", "top right", "error");
						$(".tabla_detalles tbody tr").remove();
						$(".pedidoId").val("");
					}else if(response.error && response.error == "error"){
						entrega.mostrarNotificacion("Numero de pedido incorrecto", "top right", "error");
						$(".tabla_detalles tbody tr").remove();
						$(".pedidoId").val("");
					}else{
						//El if false es para manejar los errores que pueden llegar a ocurrir, o los estados por lo cuales el pedido no tiene que ser cargado. A definir despues
						//IMPORTANTE
						if(false){
							entrega.mostrarNotificacion("El pedido se encuentra cancelado", "top right", "sucess");
							$(".tabla_detalles tbody tr").remove();
							$(".pedidoId").val("");
						}else{
							//TODO: Parsear fecha de JSON y agregarlo al input de fecha
							var fecha = entrega.parseDate(response.fecha_pedido);
							var tabla = $(".tabla_detalles tbody");
							$(".tabla_detalles tbody tr").remove();
							$(".fechaPedido").val(fecha);
							jQuery.each(response.detalle_pedido, function(i, val) {
								var diff = Number(val.cantidad_pedida) - Number(val.cant_entregada);
								var check;
								if (diff > 0){
									check = "<input type=\"checkbox\" class=\"checkChild\" name=\"checklist\">"; 
								}else{
									check = "&nbsp;";
								}
								tabla.append("<tr>" +
												"<td width=\"3%\"><div class=\"checkbox checkTable\"><label>"+check+"</label></div></td>" +
												"<td width=\"12%\">"+val.producto.id_producto+"</td>" +
												"<td width=\"25%\">"+val.producto.desc_producto+"</td>" +
												"<td width=\"13%\"><span class=\"cantidad_pedida\">"+val.cantidad_pedida+"</span></td>" +
												"<td width=\"16%\"><span class=\"cantidad\">"+val.cant_entregada+"</span></td>" +
												"<td width=\"15%\"><input type=\"number\" class=\"input_pedido form-control cantidad\" value=\""+diff+"\" disabled></td>" +
												"<td width=\"26%\">" +
													"<div class=\"input-group date\" id=\"datetimepicker8\">" +
														"<input type='text' class=\"form-control uneditable-input\" disabled/>" +
														"<span class=\"input-group-addon\"><span class=\"glyphicon glyphicon-calendar\"></span></span>" +
													"</div>" +
												"</td></tr>");
							});
							$(".idProveedor").val(response.proveedor.id_proveedor);
							$(".descProveedor").val(response.proveedor.nombre);
							$(".pedidoId").val(response.id);
						}
					}
				});
			}else{
				$(".tabla_detalles tbody tr").remove();
				$(".pedidoId").val("");
			}
		});
		
		$(".checkMaster").change(function(){
			if($(this).is(':checked')){
				$(".checkChild").prop("checked", function(){
					$(this).prop("checked", true);
					$(this).parent().parent().parent().parent().find("td").eq(5).find("input").prop("disabled", false);
				});
			}else{
				$(".checkChild").prop("checked", function(){
					$(this).prop("checked", false);
					$(this).parent().parent().parent().parent().find("td").eq(5).find("input").prop("disabled", true);
				});
			}
		});
		
		$(document).on("change", ".checkChild", function(){
			var element = $(this).parent().parent().parent().parent().find("td").eq(5).find("input");
			if($(this).is(':checked')){
				element.prop("disabled", false);
			}else{
				element.prop("disabled", true);
				element.val(0);
			}
		});
		
		$(document).on("change", ".input_pedido", function(){
			var cant_pedida = $(this).parent().parent().find("td").eq(3).text();
			var cant_entregada = $(this).parent().parent().find("td").eq(4).text();
			var max = cant_pedida - cant_entregada;
			if(max <= $(this).val()){
				$(this).val(max);
			}
			if($(this).val() < 0){
				$(this).val(0);
			}
		});
		
		$(".btnAceptar").click(function(){
			var row = null;
			var array_detalles = [];
			var formData = {};
			var row_data = {};
			
			formData.id_pedido = $(".pedidoId").val();
			
			$("input:checkbox[name=checklist]:checked").each(function()
			{
				row = $(this).parent().parent().parent().parent().find("td");
			    row_data.cod_prod = row.eq(1).text();
				row_data.cantidad_ingresar = row.eq(5).find("input").val();
				row_data.cantidad_recepcionada = row.eq(4).text();
				row_data.cantidad_pedida = row.eq(3).text();
				array_detalles.push(row_data); 
				row_data = {};
			});
			
			formData.detalle_pedido = array_detalles;
			console.log(formData);
			todo = {};
			todo.text = JSON.stringify(formData); 
			request = $.ajax({
	    	    url : "ControlDeCalidad",
	    	    type: "POST",
	    	    data : todo,
	    	});
			request.done(function (response, textStatus, jqXHR){
				console.log("Esiitoo");
				$(location).attr('href', 'index.jsp');
			});
		});
		
		$(".btnCancelar").click(function(){
			$(".tabla_detalles tbody tr").remove();
			$(".pedidoId").val("");
		});
	},
	
	mostrarNotificacion: function(str, position, type){
		$.notify(str, { globalPosition: position,
				  		className: type,
				  		clickToHide: true,
				  		autoHide: true,
				  		autoHideDelay: 4000,
			     	  });
	},
	
	parseDate: function(ds) {
		var date = new Date (ds);
		var format = date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
		return format;
	}
	
};

$( document ).ready(function() {
	entrega.bindEvents();
});